package com.feib.soeasy.action;

import net.sourceforge.stripes.action.DefaultHandler;
import net.sourceforge.stripes.action.DontBind;
import net.sourceforge.stripes.action.ForwardResolution;
import net.sourceforge.stripes.action.Resolution;
import net.sourceforge.stripes.integration.spring.SpringBean;
import net.sourceforge.stripes.validation.LocalizableError;
import net.sourceforge.stripes.validation.ValidationErrorHandler;
import net.sourceforge.stripes.validation.ValidationErrors;

import com.feib.soeasy.model.Group;
import com.feib.soeasy.model.Payer;
import com.feib.soeasy.model.PayerTemp;
import com.feib.soeasy.pagination.PaginatedList;
import com.feib.soeasy.service.GroupService;
import com.feib.soeasy.service.PayerService;
import com.feib.soeasy.service.PayerTempService;
import com.feib.soeasy.util.UserUtil;

/**
 * @title (#)Soez1015ActionBean.java<br>
 * @description 繳款人資料維護<br>
 * @author Anson Tsai<br>
 * @version 1.0.0 2010/11/25
 * @copyright Far Eastern International Bank Copyright (c) 2010<br>
 * @2011/2/6 create by Anson Tsai<br>
 */
public class Soez1015ActionBean extends BaseActionBean implements ValidationErrorHandler {

    /**
     * 業者代號查詢畫面
     */
    private static final String AJAX_QUERY_GROUP_JSP = "/WEB-INF/views/soez1015/groupPopUpList.jsp";

    /**
     * 業者代號查詢畫面
     */
    private static final String AJAX_QUERY_GROUP_JSP_ADD = "/WEB-INF/views/soez1015/groupPopUpListAdd.jsp";

    /**
     * 繳款人資料設定畫面
     */
    private static final String DEFAULT_JSP = "/WEB-INF/views/soez1015/soez1015.jsp";

    /**
     * 繳款人資料清單畫面
     */
    private static final String PAYER_LIST_JSP = "/WEB-INF/views/soez1015/soez1015List.jsp";

    /**
     * 繳款人資料維護畫面
     */
    private static final String AJAX_QUERY_PAYER_JSP = "/WEB-INF/views/soez1015/payerList.jsp";

    /**
     * 繳款人資料畫面 查詢 Payer 資料表
     */
    private static final String AJAX_VIEW_PAYER_JSP = "/WEB-INF/views/soez1015/payerView.jsp";

    /**
     * 繳款人資料新增畫面
     */
    private static final String AJAX_ADD_PAYER_JSP = "/WEB-INF/views/soez1015/payerAdd.jsp";

    /**
     * 繳款人資料新增結果畫面
     */
    private static final String AJAX_ADD_RESULT_JSP = "/WEB-INF/views/soez1015/payerAddResult.jsp";

    /**
     * 繳款人資料更新結果畫面
     */
    private static final String AJAX_MODIFY_RESULT_JSP = "/WEB-INF/views/soez1015/payerModifyResult.jsp";

    /**
     * 繳款人資料刪除結果畫面
     */
    private static final String AJAX_DELETE_RESULT_JSP = "/WEB-INF/views/soez1015/payerDeleteResult.jsp";

    /**
     * 帳單業者查詢條件
     */
    private Group qryGroup;

    /**
     * 
     */
    private Long payerPk;

    /**
     * 業者代號
     */
    private String groupNo;
    
    /**
     * 客戶編號
     */
    private String payerNo;

    /**
     * 姓名
     */
    private String payerName;

    /**
     * 電話
     */
    private String payerPhone;

    /**
     * 門牌號碼
     */
    private String houseNumber;

    /**
     * 手機
     */
    private String payerMobile;

    /**
     * 查詢結果
     */
    private PaginatedList<Payer> queryResult;

    /**
     * 帳單業者查詢結果
     */
    private PaginatedList<Group> queryGroupResult;

    /**
     * Payer Result
     */
    private Payer resultPayer;

    /**
     * PayerTemp Result
     */
    private PayerTemp resultPayerTemp;

    /**
     * 是否為PayerTemp Result Pojo
     */
    private boolean tempResult;

    /**
     * Payer是否存在
     */
    private boolean payerExist;

    /**
     * PayerTemp訊息
     */
    private String payerTempMessage;

    /**
     * 新增處理結果
     */
    private boolean inserted;

    /**
     * 更新處理結果
     */
    private boolean modifyed;

    /**
     * 刪除處理結果
     */
    private boolean deleteed;

    @SpringBean("payerService")
    private PayerService payerService;

    @SpringBean("payerTempService")
    private PayerTempService payerTempService;

    @SpringBean("groupService")
    private GroupService groupService;

    @DontBind
    @DefaultHandler
    public Resolution doDefault() {
        logger.debug("Enter doDefault mehtod.");
        return new ForwardResolution(DEFAULT_JSP);
    }

    /**
     * 帳單業者查詢
     * 
     * @return
     */
    public Resolution doAjaxQueryGroups() {
        logger.debug("Enter doAjaxQueryGroups mehtod.");
        try {
            // USER未輸入查詢條件，所以查詢物件會是NULL(查詢物件不可為NULL)
            if (null == qryGroup)
                qryGroup = new Group();            

            qryGroup.setGroupType(Group.GROUP_TYPE_MANAGEMENT_COMMITTEE); //排除學校

            // 呼叫服務查詢
            if (null == queryGroupResult)
                queryGroupResult = new PaginatedList<Group>();
            queryGroupResult = groupService.queryByGroupExcludeBank(qryGroup, queryGroupResult);
        }
        catch (Exception e) {
            logger.error("繳款人資料維護(Soez1015ActionBean.doAjaxQueryGroups):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doAjaxQueryGroups.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }

        return new ForwardResolution(AJAX_QUERY_GROUP_JSP);
    }

    /**
     * 帳單業者查詢_新增頁面
     * 
     * @return
     */
    public Resolution doAjaxQueryGroups1() {
        logger.debug("Enter doAjaxQueryGroups1 mehtod.");
        try {
            // USER未輸入查詢條件，所以查詢物件會是NULL(查詢物件不可為NULL)
            if (null == qryGroup)
                qryGroup = new Group();            

            qryGroup.setGroupType(Group.GROUP_TYPE_MANAGEMENT_COMMITTEE); //排除學校

            // 呼叫服務查詢
            if (null == queryGroupResult)
                queryGroupResult = new PaginatedList<Group>();
            queryGroupResult = groupService.queryByGroupExcludeBank(qryGroup, queryGroupResult);
        }
        catch (Exception e) {
            logger.error("繳款人資料維護(Soez1015ActionBean.doAjaxQueryGroups1):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doAjaxQueryGroups1.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }

        return new ForwardResolution(AJAX_QUERY_GROUP_JSP_ADD);
    }

    /**
     * 查詢
     * 
     * @return
     */
    public Resolution doAjaxQuery() {
        logger.debug("Enter doAjaxQuery mehtod.");
        try {
            // 銀行端 且有輸入業者代號，只能查詢管理者
            if (!UserUtil.isBankGroup())
                groupNo = UserUtil.getUserGroup().getGroupNo();

            // 呼叫服務查詢
            queryResult = payerService.queryPaginationByConditions(groupNo, payerNo, payerName, payerPhone, houseNumber, payerMobile, queryResult);
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業查詢錯誤(Soez1015ActionBean.doAjaxQuery):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doAjaxQuery.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }
        return new ForwardResolution(PAYER_LIST_JSP);
    }

    /**
     * 新增繳款人資料
     * 
     * @return
     */
    public Resolution doAjaxAddPayer() {
        logger.debug("Enter doAjaxAddPayer mehtod.");
        try {
            resultPayer = new Payer();
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業-繳款人新增錯誤(doAjaxAddPayer):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doAjaxAddPayer.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }

        return new ForwardResolution(AJAX_ADD_PAYER_JSP);
    }
    

    public Resolution doAjaxViewPayer() {
        logger.debug("Enter doAjaxViewPayer mehtod.");
        tempResult = false;
        payerTempMessage = null;
        try {

            // 呼叫服務查詢
            resultPayer = payerService.getPayerByPk(payerPk);
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業-繳款人查詢錯誤(doAjaxViewPayer):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doAjaxQueryPayer.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }

        return new ForwardResolution(AJAX_VIEW_PAYER_JSP);
    }

    /**
     * 查詢繳款人資料
     * 
     * @return
     */
    public Resolution doAjaxQueryPayer() {
        logger.debug("Enter doAjaxQueryPayer mehtod.");
        tempResult = false;
        payerTempMessage = null;
        try {

            // 呼叫服務查詢
            resultPayer = payerService.getPayerByPk(payerPk);

            // 如在PayerTemp中有查詢到資料，則將資料倒入resultPayer物件中，但需將tempResult設成True
            resultPayerTemp = payerTempService.getPayerTempNoConfirm(resultPayer.getGroup().getGroupNo(), resultPayer.getPayerNo());
            if (null != resultPayerTemp) {
                resultPayer = new Payer();
                resultPayer.setPayerPk(resultPayerTemp.getPayerTempPk());
                resultPayer.setGroup(resultPayerTemp.getGroup());
                resultPayer.setPayerNo(resultPayerTemp.getPayerNo());
                resultPayer.setPayerName(resultPayerTemp.getPayerName());
                resultPayer.setPayerEmail(resultPayerTemp.getPayerEmail());
                resultPayer.setPayerTelNo(resultPayerTemp.getPayerTelNo());
                resultPayer.setPayerCellNo(resultPayerTemp.getPayerCellNo());
                resultPayer.setLevelGround(resultPayerTemp.getLevelGround());
                resultPayer.setParkingCount(resultPayerTemp.getParkingCount());
                resultPayer.setHouseNo(resultPayerTemp.getHouseNo());
                resultPayer.setPayerAddress(resultPayerTemp.getPayerAddress());
                resultPayer.setPayerMemo(resultPayerTemp.getPayerMemo());
                
                if (PayerTemp.PAYER_RECORD_SATAUS_DELETE_MODE.equals(resultPayerTemp.getRecordStatus()))
                    payerTempMessage = "此筆繳款人資料已刪除待放行，請確定是否要維護，謝謝";
                tempResult = true;
            }
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業-繳款人查詢錯誤(doAjaxQueryPayer):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doAjaxQueryPayer.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }

        return new ForwardResolution(AJAX_QUERY_PAYER_JSP);
    }

    /**
     * 刪除繳款人資料
     * 
     * @return
     */
    public Resolution doPayerDeleteAction() {
        logger.debug("Enter doPayerDeleteAction mehtod.");
        deleteed = false;
        try {
            logger.debug("delete Object is TempResult : " + tempResult);
            logger.debug("delete Payer Object , Pk : " + resultPayer.getPayerPk());

            if (tempResult) {
                resultPayerTemp = payerTempService.getPayerTempByPk(resultPayer.getPayerPk());
            }
            else {
                resultPayer = payerService.getPayerByPk(resultPayer.getPayerPk());
                resultPayerTemp = new PayerTemp();
                resultPayerTemp.setPayerNo(resultPayer.getPayerNo());
                resultPayerTemp.setGroup(resultPayer.getGroup());
                resultPayerTemp.setPayerName(resultPayer.getPayerName());
                resultPayerTemp.setPayerEmail(resultPayer.getPayerEmail());
                resultPayerTemp.setPayerTelNo(resultPayer.getPayerTelNo());
                resultPayerTemp.setPayerCellNo(resultPayer.getPayerCellNo());
                resultPayerTemp.setLevelGround(resultPayer.getLevelGround());
                resultPayerTemp.setParkingCount(resultPayer.getParkingCount());
                resultPayerTemp.setHouseNo(resultPayer.getHouseNo());
                resultPayerTemp.setPayerAddress(resultPayer.getPayerAddress());
                resultPayerTemp.setPayerMemo(resultPayer.getPayerMemo());
            }
            resultPayerTemp.setPayerStatus(null);
            resultPayerTemp.setRecordStatus(PayerTemp.PAYER_RECORD_SATAUS_DELETE_MODE);
            payerTempService.save(resultPayerTemp);

            deleteed = true;
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業-繳款人刪除錯誤(Soez1015ActionBean.doPayerDeleteAction):", e);

            // 轉換錯誤訊息
            ValidationErrors errors = new ValidationErrors();
            errors.addGlobalError(new LocalizableError("doPayerDeleteAction.exception"));
            getContext().setValidationErrors(errors);
            // 回傳 錯誤 HTML fragments
            return super.errorsToHtmlStreams(errors);
        }
        return new ForwardResolution(AJAX_DELETE_RESULT_JSP);
    }

    /**
     * 新增繳款人資料
     * 
     * @return
     * @throws Exception 
     */
    public Resolution doPayerAddAction() throws Exception {
        logger.debug("Enter doPayerAddAction mehtod.");
        inserted = false;
        payerExist = false;
        try {
            // 如果不是銀行端，則條件要加入帳單業者限制
            if (!UserUtil.isBankGroup())
            {
                resultPayer.setGroup(UserUtil.getUserGroup());
            }
            // 判斷Payer中是否存在繳款人資料
            if (null == payerService.getPayer(resultPayer.getGroup().getGroupNo(), resultPayer.getPayerNo())) {
                // 判斷PayerTemp中是否存在繳款人資料
                payerExist = payerTempService.getPayerTempIsExist(resultPayer.getGroup().getGroupNo(), resultPayer.getPayerNo());
            }
            else {
                payerExist = true;
            }

            if (!payerExist) {
                resultPayerTemp = new PayerTemp();
                
                Group group = null;
                //如果不是銀行端，則條件要加入帳單業者限制
                if (!UserUtil.isBankGroup())
                {
                    group = UserUtil.getUserGroup();
                }
                else
                {
                    group = this.groupService.findByExactGroupNo(resultPayer.getGroup().getGroupNo());
                }
                resultPayer.setGroup(group);
                
//                logger.debug("Add Payer Object , payerPk : " + resultPayer.getPayerPk());
//                logger.debug("Add Payer Object , groupNo : " + resultPayer.getGroup().getGroupNo());
//                logger.debug("Add Payer Object , payerName : " + resultPayer.getPayerName());
//                logger.debug("Add Payer Object , payerEmail : " + resultPayer.getPayerEmail());
//                logger.debug("Add Payer Object , payerPhone : " + resultPayer.getPayerTelNo());
//                logger.debug("Add Payer Object , payerMobile : " + resultPayer.getPayerCellNo());
//                logger.debug("Add Payer Object , levelGround : " + resultPayer.getLevelGround());
//                logger.debug("Add Payer Object , parkingCount : " + resultPayer.getParkingCount());
//                logger.debug("Add Payer Object , paymentType : " + resultPayer.getPaymentType());
//                logger.debug("Add Payer Object , creditCard : " + resultPayer.getCreditCard());
//                logger.debug("Add Payer Object , validPeriod : " + resultPayer.getValidPeriod());
//                logger.debug("Add Payer Object , houseNumber : " + resultPayer.getHouseNo());
//                logger.debug("Add Payer Object , payerAddress : " + resultPayer.getPayerAddress());
//                logger.debug("Add Payer Object , payerMemo : " + resultPayer.getPayerMemo());

                resultPayerTemp.setGroup(resultPayer.getGroup());
                resultPayerTemp.setPayerNo(resultPayer.getPayerNo());
                resultPayerTemp.setPayerName(resultPayer.getPayerName());
                resultPayerTemp.setPayerEmail(resultPayer.getPayerEmail());
                resultPayerTemp.setPayerTelNo(resultPayer.getPayerTelNo());
                resultPayerTemp.setPayerCellNo(resultPayer.getPayerCellNo());
                resultPayerTemp.setLevelGround(resultPayer.getLevelGround());
                resultPayerTemp.setParkingCount(resultPayer.getParkingCount());
            
                resultPayerTemp.setHouseNo(resultPayer.getHouseNo());
                resultPayerTemp.setPayerAddress(resultPayer.getPayerAddress());
                resultPayerTemp.setPayerMemo(resultPayer.getPayerMemo());
                resultPayerTemp.setPayerStatus(null);
                resultPayerTemp.setRecordStatus(PayerTemp.PAYER_RECORD_SATAUS_ADD_MODE);
                payerTempService.save(resultPayerTemp);

                inserted = true;
            }
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業-繳款人新增錯誤(Soez1015ActionBean.doPayerAddAction):", e);
            throw e;
        }
        return new ForwardResolution(AJAX_ADD_RESULT_JSP);
    }

    /**
     * 更新繳款人資料
     * 
     * @return
     * @throws Exception 
     */
    public Resolution doPayerModifyAction() throws Exception {
        logger.debug("Enter doPayerModifyAction mehtod.");
        modifyed = false;
        try {
            logger.debug("modify Object is TempResult : " + tempResult);
            logger.debug("modify Payer Object , Pk : " + resultPayer.getPayerPk());
            logger.debug("modify Payer Object , payerName : " + resultPayer.getPayerName());
            logger.debug("modify Payer Object , payerEmail : " + resultPayer.getPayerEmail());
            logger.debug("modify Payer Object , payerPhone : " + resultPayer.getPayerTelNo());
            logger.debug("modify Payer Object , payerMobile : " + resultPayer.getPayerCellNo());
            logger.debug("modify Payer Object , levelGround : " + resultPayer.getLevelGround());
            logger.debug("modify Payer Object , parkingCount : " + resultPayer.getParkingCount());
            logger.debug("modify Payer Object , houseNumber : " + resultPayer.getHouseNo());
            logger.debug("modify Payer Object , payerAddress : " + resultPayer.getPayerAddress());
            logger.debug("modify Payer Object , payerMemo : " + resultPayer.getPayerMemo());

            if (tempResult) {
                resultPayerTemp = payerTempService.getPayerTempByPk(resultPayer.getPayerPk());
            }
            else {
                resultPayerTemp = new PayerTemp();
                if (!UserUtil.isBankGroup()) {
                    this.resultPayerTemp.setGroup(UserUtil.getUserGroup());
                }
                else
                    this.resultPayerTemp.setGroup(this.groupService.findByExactGroupNo(resultPayer.getGroup().getGroupNo()));
            }
            if (!UserUtil.isBankGroup()) {
                this.resultPayerTemp.setGroup(UserUtil.getUserGroup());
            }

            /*if (StringUtils.isNotBlank(resultPayer.getGroup().getGroupNo())) {
                this.resultPayerTemp.setGroup(groupService.findByExactGroupNo(resultPayer.getGroup().getGroupNo()));
            }*/

            resultPayerTemp.setPayerNo(resultPayer.getPayerNo());
            resultPayerTemp.setPayerName(resultPayer.getPayerName());
            resultPayerTemp.setPayerEmail(resultPayer.getPayerEmail());
            resultPayerTemp.setPayerTelNo(resultPayer.getPayerTelNo());
            resultPayerTemp.setPayerCellNo(resultPayer.getPayerCellNo());
            resultPayerTemp.setLevelGround(resultPayer.getLevelGround());
            resultPayerTemp.setParkingCount(resultPayer.getParkingCount());
            resultPayerTemp.setHouseNo(resultPayer.getHouseNo());
            resultPayerTemp.setPayerAddress(resultPayer.getPayerAddress());
            resultPayerTemp.setPayerMemo(resultPayer.getPayerMemo());
            resultPayerTemp.setPayerStatus(null);
            resultPayerTemp.setRecordStatus(PayerTemp.PAYER_RECORD_SATAUS_UPDATE_MODE);

            payerTempService.save(resultPayerTemp);

            modifyed = true;
        }
        catch (Exception e) {
            logger.error("繳款人資料維護作業-繳款人更新錯誤(Soez1015ActionBean.doPayerModifyAction):", e);
            throw e;
        }
        return new ForwardResolution(AJAX_MODIFY_RESULT_JSP);
    }

    /**
     * @return 傳回 qryGroup。
     */
    public Group getQryGroup() {
        return qryGroup;
    }

    /**
     * @param qryGroup 要設定的 qryGroup。
     */
    public void setQryGroup(Group qryGroup) {
        this.qryGroup = qryGroup;
    }

    /**
     * @return 傳回 payerName。
     */
    public String getPayerName() {
        return payerName;
    }

    /**
     * @param payerName 要設定的 payerName。
     */
    public void setPayerName(String payerName) {
        this.payerName = payerName;
    }

    /**
     * @return 傳回 payerPhone。
     */
    public String getPayerPhone() {
        return payerPhone;
    }

    /**
     * @param payerPhone 要設定的 payerPhone。
     */
    public void setPayerPhone(String payerPhone) {
        this.payerPhone = payerPhone;
    }

    /**
     * @return 傳回 houseNumber。
     */
    public String getHouseNumber() {
        return houseNumber;
    }

    /**
     * @param houseNumber 要設定的 houseNumber。
     */
    public void setHouseNumber(String houseNumber) {
        this.houseNumber = houseNumber;
    }

    /**
     * @return 傳回 payerMobile。
     */
    public String getPayerMobile() {
        return payerMobile;
    }

    /**
     * @param payerMobile 要設定的 payerMobile。
     */
    public void setPayerMobile(String payerMobile) {
        this.payerMobile = payerMobile;
    }

    /**
     * @return 傳回 queryResult。
     */
    public PaginatedList<Payer> getQueryResult() {
        return queryResult;
    }

    /**
     * @param queryResult 要設定的 queryResult。
     */
    public void setQueryResult(PaginatedList<Payer> queryResult) {
        this.queryResult = queryResult;
    }

    /**
     * @return 傳回 resultPayer。
     */
    public Payer getResultPayer() {
        return resultPayer;
    }

    /**
     * @param resultPayer 要設定的 resultPayer。
     */
    public void setResultPayer(Payer resultPayer) {
        this.resultPayer = resultPayer;
    }

    /**
     * @return 傳回 inserted。
     */
    public boolean isInserted() {
        return inserted;
    }

    /**
     * @param inserted 要設定的 inserted。
     */
    public void setInserted(boolean inserted) {
        this.inserted = inserted;
    }

    /**
     * @return 傳回 modifyed。
     */
    public boolean isModifyed() {
        return modifyed;
    }

    /**
     * @param modifyed 要設定的 modifyed。
     */
    public void setModifyed(boolean modifyed) {
        this.modifyed = modifyed;
    }

    /**
     * @return 傳回 deleteed。
     */
    public boolean isDeleteed() {
        return deleteed;
    }

    /**
     * @param deleteed 要設定的 deleteed。
     */
    public void setDeleteed(boolean deleteed) {
        this.deleteed = deleteed;
    }

    /**
     * @return 傳回 queryGroupResult。
     */
    public PaginatedList<Group> getQueryGroupResult() {
        return queryGroupResult;
    }

    /**
     * @param queryGroupResult 要設定的 queryGroupResult。
     */
    public void setQueryGroupResult(PaginatedList<Group> queryGroupResult) {
        this.queryGroupResult = queryGroupResult;
    }

    /**
     * @return 傳回 groupNo。
     */
    public String getGroupNo() {
        return groupNo;
    }

    /**
     * @param groupNo 要設定的 groupNo。
     */
    public void setGroupNo(String groupNo) {
        this.groupNo = groupNo;
    }

    /**
     * @return 傳回 payerPk。
     */
    public Long getPayerPk() {
        return payerPk;
    }

    /**
     * @param payerPk 要設定的 payerPk。
     */
    public void setPayerPk(Long payerPk) {
        this.payerPk = payerPk;
    }

    /**
     * @return 傳回 resultPayerTemp。
     */
    public PayerTemp getResultPayerTemp() {
        return resultPayerTemp;
    }

    /**
     * @param resultPayerTemp 要設定的 resultPayerTemp。
     */
    public void setResultPayerTemp(PayerTemp resultPayerTemp) {
        this.resultPayerTemp = resultPayerTemp;
    }

    /**
     * @return 傳回 tempResult。
     */
    public boolean isTempResult() {
        return tempResult;
    }

    /**
     * @param tempResult 要設定的 tempResult。
     */
    public void setTempResult(boolean tempResult) {
        this.tempResult = tempResult;
    }

    /**
     * @return 傳回 payerExist。
     */
    public boolean isPayerExist() {
        return payerExist;
    }

    /**
     * @param payerExist 要設定的 payerExist。
     */
    public void setPayerExist(boolean payerExist) {
        this.payerExist = payerExist;
    }

    /**
     * @return 傳回 payerTempMessage。
     */
    public String getPayerTempMessage() {
        return payerTempMessage;
    }

    /**
     * @param payerTempMessage 要設定的 payerTempMessage。
     */
    public void setPayerTempMessage(String payerTempMessage) {
        this.payerTempMessage = payerTempMessage;
    }

    
    /**
     * @return the payerNo
     */
    public String getPayerNo() {
        return payerNo;
    }

    
    /**
     * @param payerNo the payerNo to set
     */
    public void setPayerNo(String payerNo) {
        this.payerNo = payerNo;
    }

}
